﻿// Decompiled with JetBrains decompiler
// Type: UnityEngine.Experimental.Rendering.RayTracingSubMeshFlags
// Assembly: UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: E6AE6B5A-2752-4B07-9528-C8B77C62CE79
// Assembly location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.dll
// XML documentation location: C:\Users\windys\Unity\2021.3.39f1c1\Editor\Data\Managed\UnityEngine\UnityEngine.CoreModule.xml

using System;
using UnityEngine.Bindings;
using UnityEngine.Scripting;

#nullable disable
namespace UnityEngine.Experimental.Rendering
{
  /// <summary>
  ///   <para>Flags that determine the behavior of a sub-mesh in a RayTracingAccelerationStructure.</para>
  /// </summary>
  [Flags]
  [NativeHeader("Runtime/Export/Graphics/RayTracingAccelerationStructure.bindings.h")]
  [NativeHeader("Runtime/Shaders/RayTracingAccelerationStructure.h")]
  [UsedByNativeCode]
  public enum RayTracingSubMeshFlags
  {
    /// <summary>
    ///   <para>Unity skips the sub-mesh when building a RayTracingAccelerationStructure. As a result, rays cast using  TraceRay HLSL function will never intersect the sub-mesh.</para>
    /// </summary>
    Disabled = 0,
    /// <summary>
    ///   <para>The sub-mesh is provided as input to a RayTracingAccelerationStructure build operation.</para>
    /// </summary>
    Enabled = 1,
    /// <summary>
    ///   <para>When rays encounter this geometry, the geometry acts as though no any hit shader is present. The geometry is considered opaque.</para>
    /// </summary>
    ClosestHitOnly = 2,
    /// <summary>
    ///   <para>This flag enables the guarantee that for a given ray-triangle pair, an any hit shader is invoked only once, potentially with some performance impact.</para>
    /// </summary>
    UniqueAnyHitCalls = 4,
  }
}
